Computer virtualization is a technique that involves encapsulating a physical computing machine platform into a virtual machine that is executed under the control of virtualization software on a hardware computing platform. Virtualization software enables multiple virtual machines to be run on a single hardware computing platform, and can manage the allocation of computing resources to each virtual machine.
A set of hardware computing platforms can be organized as a server cluster to provide computing resources for example, for a data center. In addition, supporting technology can move running virtual machines between servers (also referred to herein as “host systems”) in the cluster; an example of this supporting technology is sold as VMware VMotion™ by VMware, Inc. of Palo Alto, Calif. In addition, server cluster virtualization management software that incorporates cluster resource management technology can determine initial and ongoing locations of virtual machines on hardware computing platforms in the server cluster, and can manage the allocation of cluster computing resources. An example of this server cluster virtualization management software is sold as VMware Distributed Resource Scheduler™ by VMware, Inc. of Palo Alto, Calif. (hereinafter referred to as “DRS”). In addition, the server cluster virtualization management software can request that a server in the cluster power itself down, and can use mechanisms available in the marketplace to remotely power-on a server that is powered down. An example of this power management software is sold as the VMware Distributed Power Management feature within DRS by VMware, Inc. of Palo Alto, Calif. (hereinafter referred to as “DPM”).
Current implementations of DRS limit the cluster size to a certain number (N) of servers. As a consequence, resource management has to be carried out in groups of N servers or less. For data centers that operate considerably more than N servers and data centers that operate multiple groups of servers where each group is dedicated to a different customer or has a particular server configuration, DRS cannot ensure optimized resource management. Although resource usage within any single group of servers may be balanced using DRS, adding capacity to an overloaded group of servers cannot be easily done.